package com.xoa.service.book;

import com.xoa.dao.book.BookManagerMapper;
import com.xoa.model.book.BookManage;
import com.xoa.model.book.BookManager;
import com.xoa.service.department.DepartmentService;
import com.xoa.service.users.UsersService;
import com.xoa.util.ToJson;
import com.xoa.util.common.L;
import com.xoa.util.common.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * 创建作者:   牛江丽
 * 创建日期:  2017年10月23日 下午14:43:00
 * 类介绍  :图书管理员service
 * 构造参数:
 */
@Service
public class BookManagerService {


    @Resource
    private BookManagerMapper bookManagerMapper;

    @Resource
    private DepartmentService departmentService;

    @Resource
    private UsersService usersService;

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午14:44:00
     * 方法介绍:   添加图书管理员
     * 参数说明:   @param bookManager
     * 返回值说明:
     */
    @Transactional
    public ToJson<BookManager> insertManager(BookManager bookManager){
        ToJson<BookManager> json = new ToJson<BookManager>(1, "error");
        try{
            int count=bookManagerMapper.insertManager(bookManager);
            if(count>0){
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookManagerService insertManager:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:44:00
     * 方法介绍:   根据id修改图书管理员
     * 参数说明:   @param bookManager
     * 返回值说明:
     */
    @Transactional
    public ToJson<BookManager> upManagerById(BookManager bookManager){
        ToJson<BookManager> json = new ToJson<BookManager>(1, "error");
        try{
            int count=bookManagerMapper.upManagerById(bookManager);
            if(count>0){
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookManagerService upManagerById:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:45:00
     * 方法介绍:   根据id删除图书管理员
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    @Transactional
    public ToJson<BookManager> delManagerById(Integer autoId){
        ToJson<BookManager> json = new ToJson<BookManager>(1, "error");
        try{
            int count=bookManagerMapper.delManagerById(autoId);
            if(count>0){
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookManagerService delManagerById:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月23日 下午15:46:00
     * 方法介绍:   根据id查询图书管理员
     * 参数说明:   @param autoId
     * 返回值说明:
     */
    public ToJson<BookManager> selManagerById(Integer autoId){
        ToJson<BookManager> json = new ToJson<BookManager>(1, "error");
        try{
            BookManager bookManager=bookManagerMapper.selManagerById(autoId);
            if(!StringUtils.checkNull(bookManager.getManagerId())){
                bookManager.setManagerName(usersService.getUserNameById(bookManager.getManagerId(),","));
            }
            if(!StringUtils.checkNull(bookManager.getManageDeptId())){
                bookManager.setManageDeptName(departmentService.getDeptNameByDeptId(bookManager.getManageDeptId(),","));
            }
            json.setObject(bookManager);
            json.setMsg("ok");
            json.setFlag(0);
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookManagerService selManagerById:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:  2017年10月23日 下午15:47:00
     * 方法介绍:   查询所有图书管理员信息
     * 返回值说明:
     */
    public ToJson<BookManager> selAllManager(){
        ToJson<BookManager> json = new ToJson<BookManager>(1, "error");
        try{
            List<BookManager> list=bookManagerMapper.selAllManager();
            for(BookManager bookManager:list){
                if(!StringUtils.checkNull(bookManager.getManagerId())){
                    bookManager.setManagerName(usersService.getUserNameById(bookManager.getManagerId(),","));
                }
                if(!StringUtils.checkNull(bookManager.getManageDeptId())){
                    bookManager.setManageDeptName(departmentService.getDeptNameByDeptId(bookManager.getManageDeptId(),","));
                }
            }
            json.setObj(list);
            json.setMsg("ok");
            json.setFlag(0);
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("BookManagerService selAllManager:"+e);
            e.printStackTrace();
        }
        return  json;
    }
}
